package cn.waqwb;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

/**
 * @author JokerQ
 * @date 2020/8/12 - 10:47
 */
public class JDBCDemo02 {
    public static void main(String[] args) {
        //1、加载驱动
        /*
        反射机制加载我们的MySQL驱动，
         */
        Connection conn = null;
        try {
            //异常先不处理，先抛出，后续课程专门讲异常处理部分
           /* Class c = Class.forName("com.mysql.jdbc.Driver");
            //System.out.println(c);
            //2、创建连接
            //DriverManager:管理一组 JDBC 驱动程序的基本服务。
            //                          服务器         库
            String url = "jdbc:mysql://127.0.0.1:3306/ycty";
            String username = "waqwb";
            String password = "qiu55555";*/
            /*
             * 加注释讲解
             */
            InputStream is =
                    JDBCDemo02.class.getClassLoader().getResourceAsStream("db.properties");
            Properties properties = new Properties();
            properties.load(is);
            String dirver = properties.getProperty("driver");
            String url = properties.getProperty("url");
            String username = properties.getProperty("username");
            String password = properties.getProperty("password");
            Class.forName(dirver);
            conn = DriverManager.getConnection(url, username, password);
            System.out.println(conn);
            //3、创建语句对象
            /**
             * Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。
             * Statement通过Connection对象创建，有三种常用方法：
             * execute()：查询时候有返回值，有返回值返回true
             * executeQuery():执行查询语句的时候用
             * executeUpdate()：执行更新语句的时候，返回的是受到影响的记录 0 >0
             */
            Statement statement = conn.createStatement();
            //4、执行sql语句
            String sql = "select * from t_user";
            //5、处理结果集
            ResultSet rs = statement.executeQuery(sql);
            while (rs.next()) {
                String str = rs.getString("email");
                System.out.println(str);
            }
            //6、关闭连接
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
